
$.fn.xablock = function(options) {

    var defaults   = {
        'html':'block disabled',
        'overlayHtml':'<div class="xalayer"><div class="xatext"></div></div>',
        'opacity':.5
    };
    var opts=$.extend({},defaults, options);
    var selected=this;
    this.each(function() {
        var e=$(this);
        var top=e.offset().top;
        var left=e.offset().left;
        var w=e.width();
        var h=e.outerHeight();
        
        var overlay=$(opts.overlayHtml).insertAfter(e);
        e.data('xablock',overlay);
        e.data('xaopts',opts);
        var xatext = overlay.find('.xatext').html(opts.html);
        
        overlay.css({
            'opacity':opts.opacity
        });
        $(window).resize(function(){
            calculate(e, overlay);
        })
        calculate(e,overlay);
        //border radius
        overlay.css({
            'borderTopLeftRadius': e.css('borderTopLeftRadius'),
            'borderTopRightRadius': e.css('borderTopRightRadius'),
            'borderBottomLeftRadius': e.css('borderBottomLeftRadius'),
            'borderBottomRightRadius': e.css('borderBottomRightRadius'),
            'mozBorderRadius': e.css('borderBottomRightRadius')
        });
       
    });
    return {
        destroyOverlay: function(){
            selected.each(function(){
                var e=$(this);
                var block= e.data('xablock');
                if(!block)
                    return selected;
                e.removeData('xablock');
                block.remove();
                return selected;
            })
        }, 
        hideOverlay: function(){
            selected.each(function(){
                $(this).data('xablock').hide();
                return selected;
            })
        },
        showOverlay: function(){
            selected.each(function(){
                $(this).data('xablock').show();
                return selected;
            })
        },
        changeHtml:function(html){
            selected.each(function(){
                var overlay=$(this).data('xablock');
                if(!overlay)
                    return selected;
                overlay.find('.xatext').html(html);
                calculate($(this),overlay);
                return selected;
            })
        }
        
           
    }
    function calculate(obj,overlay)
    {
        var w=obj.outerWidth();
        var h=obj.outerHeight();
        overlay.css({
            'width':obj.outerWidth(),
            'height':obj.outerHeight(),
            'top':obj.offset().top,
            'left':obj.offset().left
        });
        var html=overlay.find('.xatext');
        var hw=html.outerWidth();
        var hh=html.outerHeight();
        var marginLR=(w-hw)/2;
        var marginTB=(h-hh)/2;
        html.css({
            'margin-left':marginLR,
            'margin-top':marginTB
        });
        
    }
};
